package com.xydtech.ecard.busi.mapper;

import com.xydtech.common.core.domain.entity.SysDept;
import com.xydtech.ecard.busi.domain.EcardApiEcardBusiReservation;
import com.xydtech.ecard.user.domain.EcardApiEcardRegistInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 业务预约登记Mapper接口
 *
 * @author Daniel
 * @date 2021-09-06
 */
public interface EcardApiEcardBusiReservationMapper {
    /**
     * 电子名片-业务预约登记-查询已经提交过的未处理的产品预约
     * @param busiReservation
     * @return
     */
    List<EcardApiEcardBusiReservation> getSubmitBusiReservation(EcardApiEcardBusiReservation busiReservation);

    /**
     * 电子名片-业务预约登记-提交预约
     * @param busiReservation
     * @return
     */
    int submitReservation(EcardApiEcardBusiReservation busiReservation);

    /**
     * 电子名片-业务预约登记-获取客户已经预约过的第一条业务
     *
     * @param currentUserId
     * @return
     */
    List<EcardApiEcardBusiReservation> getCustFirstReservation(@Param("currentUserId") String currentUserId, @Param("deptId") Long deptId);

    /**
     * 电子名片-业务预约登记-获取客户已经预约过的业务
     *
     * @param currentUserId
     * @return
     */
    List<EcardApiEcardBusiReservation> getCustReservationList(@Param("currentUserId") String currentUserId, @Param("deptId") Long deptId);

    /**
     * 电子名片-业务预约登记-获取客户经理的业务预约列表
     * @param cmRegistId
     * @return
     */
    List<EcardApiEcardBusiReservation> getReservationForManager(
            @Param("cmRegistId") String cmRegistId,
            @Param("sts") String sts);

    /**
     * 电子名片-首页-根据擅长业务查询对应的客户经理
     * @param deptList
     * @return
     */
    List<EcardApiEcardRegistInfo> getCustomerManagerByAdeptPrdType(
            @Param("adeptPrdType") String adeptPrdType,
            @Param("deptList") List<SysDept> deptList,
            @Param("parentDeptId") Long parentDeptId);

    /**
     * 根据ID查询预约详情
     * @param resId
     * @return
     */
    List<EcardApiEcardBusiReservation> getReservationDetail(String resId);

    /**
     * 电子名片-业务预约登记-处理预约等级（受理确认和无意向）
     * @param resId
     * @return
     */
    int noIntentionForReservation(@Param("resId") String resId);

    /**
     * 电子名片-业务预约登记-受理确认
     * @param ecardBusiReservation
     * @return
     */
    int acceptReservation(EcardApiEcardBusiReservation ecardBusiReservation);

    /**
     * 电子名片-业务预约登记-上传业务办理凭证（更新文件路径到预约业务中）
     * @param resId
     * @param certImageFilePath
     * @return
     */
    int updateReservationCertImage(
            @Param("resId") String resId,
            @Param("certImageFilePath") String certImageFilePath);

    /**
     * 电子名片-业务预约登记-业务转交
     * @param resId
     * @param currentUserId
     * @param transToRegistId
     * @return
     */
    int transReservation(
            @Param("resId") String resId,
            @Param("currentUserId") String currentUserId,
            @Param("transToRegistId") String transToRegistId);


    /**
     * 更新业务预约的报告地址
     * @param resId
     * @param reportUrl
     * @return
     */
    int updateReportUrl(
            @Param("resId") String resId,
            @Param("reportUrl") String reportUrl);
    /**
     * 修改业务预约登记
     *
     * @param ecardApiEcardBusiReservation 业务预约登记
     * @return 结果
     */
    public int updateEcardApiEcardBusiReservation(EcardApiEcardBusiReservation ecardApiEcardBusiReservation);

    /**
     * 更新PDF报告地址
     * @author yjs
     * @date 2022/12/7 17:41
     */
    public int updatePdfReport(@Param("pdfKey") String pdfKey,@Param("pdfVal") String pdfVal,@Param("resId") String resId);
}
